www.gusucode.com > matlab从零到进阶程序与数据 > matlab从零到进阶程序与数据/第19章 回归分析/examp19_3_reglm.m

    %--------------------------------------------------------------------------
%             读取原始数据,调用自编函数reglm作5元线性回归
%--------------------------------------------------------------------------

%*********************************读取数据**********************************
xydata = xlsread('examp19_3_1.xls');
y = xydata(:, 2);
X = xydata(:, 3:7);

%*********调用reglm函数作5元线性回归显示回归分析的方差分析表和参数估计表*******
reglm(y,X)


%--------------------------------------------------------------------------
%             剔除不显著变量,调用自编函数reglm作3元线性回归
%--------------------------------------------------------------------------

X135 = X(:,[1 3 5]);
varnames = {'X1','X3','X5'};
reglm(y, X135, [], varnames);


%--------------------------------------------------------------------------
%                   调用自编函数reglm作完全二次回归
%--------------------------------------------------------------------------

reglm(y,X,'quadratic')


%--------------------------------------------------------------------------
%                      绘制以上3次拟合的拟合效果图
%--------------------------------------------------------------------------

s1 = reglm(y,X);

X135 = X(:,[1 3 5]);
varnames = {'X1','X3','X5'};
s2 = reglm(y, X135, [], varnames);

s3 = reglm(y,X,'quadratic'); 

figure;
plot(y,'ko');
hold on
plot(s1.yhat,':','linewidth',2);
plot(s2.yhat,'r-.','linewidth',2);
plot(s3.yhat,'k','linewidth',2);
legend('y的原始散点','5元线性回归拟合','3元线性回归拟合','完全二次回归拟合');
xlabel('y的观测序号');
ylabel('y');